package com.ltxtiyu.video.tool;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;

public class FileTool {
	
	private static Logger logger = LoggerFactory.getLogger(FileTool.class);
	
	 /**
     * 删除单个文件
     *
     * @param fileName
     *            要删除的文件的文件名
     * @return 单个文件删除成功返回true，否则返回false
     */
    public static boolean deleteFile(String fileName) {
        File file = new File(fileName);
        // 如果文件路径所对应的文件存在，并且是一个文件，则直接删除
        if (file.exists() && file.isFile()) {
            if (file.delete()) {
            	logger.info("删除单个文件" + fileName + "成功！");
                return true;
            } else {
            	logger.info("删除单个文件" + fileName + "失败！");
                return false;
            }
        } else {
        	logger.info("删除单个文件失败：" + fileName + "不存在！");
            return false;
        }
    }


	/**
	 * 转byte[]
	 * @param fileName
	 * @return
	 * @throws Exception
	 */
	public static byte[] File2Bytes(String fileName) throws Exception {
		FileInputStream fin = new FileInputStream(new File(fileName));
        //可能溢出,简单起见就不考虑太多,如果太大就要另外想办法，比如一次传入固定长度byte[]
        byte[] bytes  = new byte[fin.available()];
        //将文件内容写入字节数组，提供测试的case
        fin.read(bytes);
        
        fin.close();
        return bytes;
	}
	

	/**
	 * 获取文件的大小
	 * @param filePath
	 * @return
	 */
	public static long getFileSize(String filePath){
		File file = new File(filePath);
		if(file.exists()){
			return file.length();
		}
		return 0;
	}
	
	/**
	 * 检查文件是否存在
	 * 文件存在返回true
	 * 文件不存在返回false
	 * @param path
	 * @return
	 */
	public static boolean checkFile(String path) {
		File file = new File(path);
		if (!file.isFile()) {
			return false;
		} else {
			return true;
		}
	}

	/**
	 * 获取项目投路径
	 * @return
	 */
	public static String getFilePathHead(){
		try {
			/*String pathStr = VideoTool.class.getResource("").toString();
			String head = pathStr.substring(0,pathStr.indexOf("file:/"))+"file:/";
			String path = pathStr.substring(head.length()-1, pathStr.indexOf(SysConfigInfo.CONFIG.get("PROJECT_NAME")));
			logger.info("项目头路径: "+path);*/

			// 拼路径
			String pathStr = FileTool.class.getResource("").getPath();
			String finalPath = "";
			String substring = pathStr.substring(0, pathStr.indexOf("/WEB-INF/"));
			String tempS = substring.substring(0, substring.lastIndexOf("/"));
			finalPath = tempS.replaceAll("file:","");
			logger.info("路径2>>>>>>>>>>>>>>>>" + finalPath);

			return finalPath;
			/*return "";*/
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

	/**
	 * 获取不带扩展名的文件名
	 * @param filename
	 * @return
	 */
	public static String getFileNameNoEx(String filename) {
		if ((filename != null) && (filename.length() > 0)) {
			int dot = filename.lastIndexOf('.');
			if ((dot >-1) && (dot < (filename.length()))) {
				return filename.substring(0, dot);
			}
		}
		return filename;
	}

}
